#!/usr/bin/python
# -*- coding: utf-8 -*-

"""
  Функции работы с цитатами
"""

import random
import logging
from engine import settings
from google.appengine.ext import db
from datetime import datetime

class Cite(db.Model):
  """Класс - цитата
  """

  Text = db.StringProperty(verbose_name = 'Цитата', multiline = True, required = True)
  Author = db.StringProperty(verbose_name = 'Автор', multiline = False)
#  Poster = db.UserProperty(required=True)

def AddCite(text, author):
  """Добавить цитату
  Args:
    text: текст цитаты
    author: автор цитаты
  """
  c = Cite(Text = text, Author = author)
  return c.put()

def GetCites(single = True):
  """Получить цитаты из базы
  Args:
    single: получить только одну цитату, взятую случайным образом
  """
  
  q = Cite.all().order('-Author')                    # создаем запрос
  
  if not q.get():                                    # если в запросе пусто
    q = None
    logging.warning('GetCites: no cites exists!')
  else:
    if single and q.get():
      random.seed()
      q = q.fetch(1, random.randint(0, q.count() - 1))
      q = q[0]
      #q = q.get()

  return q


def DelCites(cite):
  """Удаление цитаты
  Args:
    cite: ключи для выборки из базы данных
  """
  results = Cite.get(cite)
  for result in results:
    result.delete()